import numpy as np
%matplotlib notebook
import matplotlib.pyplot as plt
import ipywidgets as widgets
from maux import *
hide_interactive_toolbars()
from mtest import true_false_test
# interaktívny editor pre vyšetrovanie priebehu elementárnych funkcií
from jedit import editor
np.warnings.filterwarnings('ignore', category=np.VisibleDeprecationWarning)
# nastavenie jazyka
from locale import setlocale, LC_ALL
from platform import uname
if uname()[0] == 'Linux':
setlocale(LC_ALL, 'sk_SK.utf8')
else:
setlocale(LC_ALL, 'sk_SK')
plt.rcParams["axes.formatter.use_locale"] = True
V nasledujúcich príkladoch budeme vyšetrovať priebeh funkcií pomocou derivácií. Správnosť riešenia sa bude overovať graficky.
Doporučená literatúra. Pozri podkapitolu 4.6. Vyšetrovanie niektorých vlastností funkcií pomocou diferenciálneho počtu v texte
Dokumentácia:
Nech funkcia $f$ je dvakrát diferencovateľná vo vnútornom bode $x$ definičného oboru. Potom
Určenie ostrých lokálnych extrémov funkcie \begin{align} y & = 2x^2 - x^4. \end{align} Správnosť riešenia je overená graficky.
#####
##### ostré lokálne extrémy
#####
#### vstupné údaje
## funkcia
def f(X): return 2 * X ** 2 - X ** 4
X = np.linspace(-2, 2, 4*100+1)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharex=True, sharey=True)
fig.set_size_inches(9, 6)
fig.suptitle(r"Ostré lokálne extrémy funkcie $y = 2x^2 - x^4$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(1/2)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
ax1.set_ylim(-8.4, 4.4)
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## prvá derivácia
def df(X): return 4 * X - 4 * X ** 3
dX = X
## graf prvej derivácie
ax1.plot(dX, df(dX), label=r"prvá derivácia")
## druhá derivácia
def ddf(X): return 4 - 12 * X ** 2
ddX = X
## graf druhej derivácie
ax1.plot(ddX, ddf(ddX), label=r"druhá derivácia")
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
# true_false_test(ax1, df, ddX, ddf)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## graf funkcie
ax2.plot(X, f(X))
## ostré lokálne maximum
color = ax2.plot([], [], 'o', label=r"ostré lokálne maximum")[0].get_color()
for p in [-1, 1]:
ax2.plot(p, f(p), 'o', c=color)
## ostré lokálne minimum
p = 0; ax2.plot(p, f(p), 'o', label=r"ostré lokálne minimum")
## legenda
ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
V nasledujúcich príkladoch budeme zisťovať ostré lokálne extrémy funkcií. Správnosť riešenia sa bude overovať graficky, a to takto:
Určite ostré lokálne extrémy nasledujúcich funkcií: \begin{align} y & = \frac{3}{4}x^4 - x^3 - 9x^2 + 7, \\ y & = x^4 - 8x^3 + 22x^2 - 24x + 12, \\ y & = e^x \sin x, \\ y & = \frac{\ln^2 x}{x}, \\ y & = |x^2 - 3x + 2|. \end{align} Správnosť riešenia overte graficky. Súradnice význačných bodov nevypisujte!
#####
##### ostré lokálne extrémy (šablóna riešenia)
#####
#### vstupné údaje
## funkcia
def f(X): return 3/4 * X ** 4 - X ** 3 - 9 * X ** 2 + 7
X = np.linspace(-2.85, 4.2, 285+420+1)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharex=True, sharey=True)
fig.set_size_inches(9, 6)
fig.suptitle(r"Ostré lokálne extrémy funkcie $y = \dfrac{3}{4}x^4 - x^3 - 9x^2 + 7$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(1/5)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
ax1.set_ylim(-45, 15)
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## prvá derivácia (tento údaj upravte)
# def df(X): return None
# dX = X
## graf prvej derivácie (tento údaj upravte)
# ax1.plot(dX, df(dX), label=r"prvá derivácia")
## druhá derivácia (tento údaj upravte)
# def ddf(X): return None
# ddX = X
## graf druhej derivácie (tento údaj upravte)
# ax1.plot(ddX, ddf(ddX), label=r"druhá derivácia")
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
# true_false_test(ax1, df, ddX, ddf)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## graf funkcie
ax2.plot(X, f(X))
## ostrý lokálny extrém (tento údaj upravte)
# p = None; ax2.plot(p, f(p), 'o', label=r"ostré lokálne maximum")
# p = None; ax2.plot(p, f(p), 'o', label=r"ostré lokálne minimum")
## legenda (tento údaj upravte)
# ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
#####
##### ostré lokálne extrémy (šablóna riešenia)
#####
#### vstupné údaje
## funkcia
def f(X): return X ** 4 - 8 * X ** 3 + 22 * X ** 2 - 24 * X + 12
X = np.linspace(0, 4, 4*100+1)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharex=True, sharey=True)
fig.set_size_inches(9, 4.5)
fig.suptitle(r"Ostré lokálne extrémy funkcie $y = x^4 - 8x^3 + 22x^2 - 24x + 12$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(1/4)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
ax1.set_ylim(-5, 13)
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## prvá derivácia (tento údaj upravte)
# def df(X): return None
# dX = X
## graf prvej derivácie (tento údaj upravte)
# ax1.plot(dX, df(dX), label=r"prvá derivácia")
## druhá derivácia (tento údaj upravte)
# def ddf(X): return None
# ddX = X
## graf druhej derivácie (tento údaj upravte)
# ax1.plot(ddX, ddf(ddX), label=r"druhá derivácia")
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
# true_false_test(ax1, df, ddX, ddf)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## graf funkcie
ax2.plot(X, f(X))
## ostrý lokálny extrém (tento údaj upravte)
# p = None; ax2.plot(p, f(p), 'o', label=r"ostré lokálne maximum")
# p = None; ax2.plot(p, f(p), 'o', label=r"ostré lokálne minimum")
## legenda (tento údaj upravte)
# ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
#####
##### ostré lokálne extrémy (šablóna riešenia)
#####
#### vstupné údaje
## funkcia
def f(X): return np.e ** X * np.sin(X)
X = np.linspace(-2*np.pi, np.pi, 285+420+1)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharex=True, sharey=True)
fig.set_size_inches(9, 6)
fig.suptitle(r"Ostré lokálne extrémy funkcie $y = e^x\,\sin\,x$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(np.pi/2)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
## x-ová os
xtick_numerators = range(-4, 2+1)
ax1.set_xticks([n * np.pi / 2 for n in xtick_numerators])
ax1.set_xticklabels([smart_ticklabel(n, r"\pi", 2) for n in xtick_numerators])
## y-ová os
ax1.set_ylim(-2.2, 8.2)
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## prvá derivácia (tento údaj upravte)
# def df(X): return None
# dX = X
## graf prvej derivácie (tento údaj upravte)
# ax1.plot(dX, df(dX), label=r"prvá derivácia")
## druhá derivácia (tento údaj upravte)
# def ddf(X): return None
# ddX = X
## graf druhej derivácie (tento údaj upravte)
# ax1.plot(ddX, ddf(ddX), label=r"druhá derivácia")
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
# true_false_test(ax1, df, ddX, ddf)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## graf funkcie
ax2.plot(X, f(X))
## ostrý lokálny extrém (tento údaj upravte)
# p = None; ax2.plot(p, f(p), 'o', label=r"ostré lokálne maximum")
# p = None; ax2.plot(p, f(p), 'o', label=r"ostré lokálne minimum")
## legenda (tento údaj upravte)
# ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
#####
##### ostré lokálne extrémy (šablóna riešenia)
#####
#### vstupné údaje
## funkcia
def f(X): return np.log(X) ** 2 / X
X = np.linspace(0,10, 10*100+1)
X = X[X > 0]
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharex=True, sharey=True)
fig.set_size_inches(9, 7)
fig.suptitle(r"Ostré lokálne extrémy funkcie $y = \dfrac{\ln^2\,x}{x}$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(5/0.2)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
ax1.set_ylim(-0.16, 0.55)
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## prvá derivácia (tento údaj upravte)
# def df(X): return None
# dX = X
## graf prvej derivácie (tento údaj upravte)
# ax1.plot(dX, df(dX), label=r"prvá derivácia")
## druhá derivácia (tento údaj upravte)
# def ddf(X): return None
# ddX = X
## graf druhej derivácie (tento údaj upravte)
# ax1.plot(ddX, ddf(ddX), label=r"druhá derivácia")
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
# true_false_test(ax1, df, ddX, ddf)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
# graf funkcie
ax2.plot(X, f(X))
## ostrý lokálny extrém (tento údaj upravte)
# p = None; ax2.plot(p, f(p), 'o', label=r"ostré lokálne maximum")
# p = None; ax2.plot(p, f(p), 'o', label=r"ostré lokálne minimum")
## legenda (tento údaj upravte)
# ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
#####
##### ostré lokálne extrémy (šablóna riešenia)
#####
#### vstupné údaje
## funkcia
def f(X): return np.abs(X ** 2 - 3 * X + 2)
X = np.linspace(0, 3, 3*100+1)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharex=True, sharey=True)
fig.set_size_inches(9, 9)
fig.suptitle(r"Ostré lokálne extrémy funkcie $y = |x^2 - 3x + 2|$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(1)
#ax.set_ylim(-3.3, 3.3)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
ax1.set_ylim(-3.3, 3.3)
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## prvá derivácia (tento údaj upravte)
# def df(X): return None
# dX = X
## graf prvej derivácie (tento údaj upravte)
# ax1.plot(dX, df(dX), label=r"prvá derivácia")
## druhá derivácia (tento údaj upravte)
# def ddf(X): return None
# ddX = X
## graf druhej derivácie (tento údaj upravte)
# ax1.plot(ddX, ddf(ddX), label=r"druhá derivácia")
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
# true_false_test(ax1, df, ddX, ddf)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## graf funkcie
ax2.plot(X, f(X))
## ostrý lokálny extrém (tento údaj upravte)
# p = None; ax2.plot(p, f(p), 'o', label=r"ostré lokálne maximum")
# p = None; ax2.plot(p, f(p), 'o', label=r"ostré lokálne minimum")
## legenda (tento údaj upravte)
# ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
Určite ostré lokálne extrémy funkcie \begin{align} y & = (x+1)^3(x-1)^2(2-x). \end{align} Správnosť riešenia overte graficky. Súradnice význačných bodov nevypisujte!
#####
##### ostré lokálne extrémy (šablóna riešenia)
#####
#### vstupné údaje
## funkcia
def f(X): return (X + 1) ** 3 * (X - 1) ** 2 * (2 - X)
X = np.linspace(-2.3, 2.3, 46*10+1)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharex=True, sharey=True)
fig.set_size_inches(9, 5)
fig.suptitle(r"Ostré lokálne extrémy funkcie $y = (x+1)^3(x-1)^2(2-x)$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(1/5)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
ax1.set_ylim(-12, 18)
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## prvá derivácia (tento údaj upravte)
# def df(X): return None
# dX = X
## graf prvej derivácie (tento údaj upravte)
# ax1.plot(dX, df(dX), label=r"prvá derivácia")
## druhá derivácia (tento údaj upravte)
# def ddf(X): return None
# ddX = X
## graf druhej derivácie (tento údaj upravte)
# ax1.plot(ddX, ddf(ddX), label=r"druhá derivácia")
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
# true_false_test(ax1, df, ddX, ddf)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## graf funkcie
ax2.plot(X, f(X))
## ostrý lokálny extrém (tento údaj upravte)
# p = None; ax2.plot(p, f(p), 'o', label=r"ostrý lokálny extrém")
## legenda (tento údaj upravte)
# ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
Nech funkcia $f$ je spojitá na intervale $I$ a má deriváciu v každom jeho vnútornom bode. Potom
Vyšetrenie intervalov monotónnosti funkcie \begin{align} y & = 3x - x^3. \end{align} Správnosť riešenia je overená graficky.
#####
##### intervaly monotónnosti
#####
#### vstupné údaje
## funkcia
def f(X): return 3 * X - X ** 3
X = np.linspace(-2, 2, 4*100+1)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharex=True, sharey=True)
fig.set_size_inches(9, 5)
fig.suptitle(r"Intervaly monotónnosti funkcie $y = 3x - x^3$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(1)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
ax1.set_ylim(-3.3, 3.3)
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## derivácia
def df(X): return 3 - 3 * X ** 2
dX = X
## graf derivácie
ax1.plot(dX, df(dX), label=r"derivácia")
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## intervaly, na ktorých je funkcia monotónna
color = ax2.plot([], [], label=r"klesajúca")[0].get_color()
for I in [X[X <= -1], X[X >= 1]]:
ax2.plot(I, f(I), c=color)
I = X[(-1 <= X) & (X <= 1)]; ax2.plot(I, f(I), label=r"rastúca")
## legenda
ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
V nasledujúcich príkladoch budeme určovať intervaly (rýdzej) monotónnosti funkcií. Správnosť riešenia sa bude overovať graficky, a to takto:
Zistíte, na ktorých intervaloch sú nasledujúce funkcie monotónne: \begin{align} y & = \frac{2x}{1 + x^2}, \\ y & = \frac{x^2}{2^x}, \\ y & = x^2 - \ln x^2. \end{align} Správnosť riešenia overte graficky. Súradnice význačných bodov nevypisujte!
#####
##### intervaly monotónnosti (šablóna riešenia)
#####
#### vstupné údaje
## funkcia
def f(X): return 2 * X / (1 + X ** 2)
X = np.linspace(-6, 6, 6*100+1)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=2, ncols=1, sharex=True, sharey=True)
fig.set_size_inches(9, 5)
fig.suptitle(r"Intervaly monotónnosti funkcie $y = \dfrac{2x}{1 + x^2}$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(1)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
ax1.set_ylim(-1.2, 2.2)
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## derivácia (tento údaj upravte)
# def df(X): return None
# dX = X
## graf derivácie (tento údaj upravte)
# ax1.plot(dX, df(dX), label=r"derivácia")
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## intervaly, na ktorých je funkcia monotónna (tento údaj upravte)
# I = X[None]; ax2.plot(I, f(I), label=r"rastúca")
# I = X[None]; ax2.plot(I, f(I), label=r"klesajúca")
## legenda (tento údaj upravte)
# ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
#####
##### intervaly monotónnosti (šablóna riešenia)
#####
#### vstupné údaje
## funkcia
def f(X): return X ** 2 / 2 ** X
X = np.linspace(-1, 10, 11*100+1)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharex=True, sharey=True)
fig.set_size_inches(9, 6)
fig.suptitle(r"Intervaly monotónnosti funkcie $y = \dfrac{x^2}{2^x}$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(4)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
ax1.set_ylim(-2.2, 2.2)
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## derivácia (tento údaj upravte)
# def df(X): return None
# dX = X
## graf derivácie (tento údaj upravte)
# ax1.plot(dX, df(dX), label=r"derivácia")
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## intervaly, na ktorých je funkcia monotónna (tento údaj upravte)
# I = X[None]; ax2.plot(I, f(I), label=r"rastúca")
# I = X[None]; ax2.plot(I, f(I), label=r"klesajúca")
## legenda (tento údaj upravte)
# ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
#####
##### intervaly monotónnosti (šablóna riešenia)
#####
#### vstupné údaje
## funkcia
def f(X): return X ** 2 - np.log(X ** 2)
X = np.linspace(-2, 2, 4*100+1)
X1, X2 = X[X < 0], X[X > 0] # číslo 0 nepatrí do oboru definície
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharex=True, sharey=True)
fig.set_size_inches(9, 5)
fig.suptitle(r"Intervaly monotónnosti funkcie $y = x^2 - \ln\,x^2$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(1/2)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
ax1.set_ylim(-3, 7)
## graf funkcie
color = ax1.plot([], [], label=r"funkcia")[0].get_color()
ax1.plot(X1, f(X1), c=color)
ax1.plot(X2, f(X2), c=color)
## derivácia (tento údaj upravte)
# def df(X): return None
# dX1, dX2 = X1, X2
## graf derivácie (tento údaj upravte)
# color = ax1.plot([], [], label=r"derivácia")[0].get_color()
# ax1.plot(dX1, df(dX1), c=color)
# ax1.plot(dX2, df(dX2), c=color)
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX1, df)
# true_false_test(ax1, f, dX2, df)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## intervaly, na ktorých je funkcia monotónna (tento údaj upravte)
# I = X[None]; ax2.plot(I, f(I), label=r"rastúca")
# I = X[None]; ax2.plot(I, f(I), label=r"klesajúca")
## legenda (tento údaj upravte)
# ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
Zistíte, na ktorých intervaloch je funkcia \begin{align} y & = |\sin\,2x| - x \end{align} monotónna. Správnosť riešenia overte graficky. Súradnice význačných bodov nevypisujte!
#####
##### intervaly monotónnosti (šablóna riešenia)
#####
#### vstupné údaje
## funkcia
def f(X): return np.abs(np.sin(2 * X)) - X
X = np.linspace(-np.pi, np.pi, 2*2*100+1)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharex=True, sharey=True)
fig.set_size_inches(9, 4)
fig.suptitle(r"Intervaly monotónnosti funkcie $y = |\sin\,2x|-x$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(1)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
## x-ová os
xtick_numerators = range(-4, 4+1)
ax1.set_xticks([n * np.pi / 2 for n in xtick_numerators])
ax1.set_xticklabels([smart_ticklabel(n, r"\pi", 2) for n in xtick_numerators])
## y-ová os
ax1.set_ylim(-4.4, 4.4)
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## derivácia (tento údaj upravte)
# def df(X): return None
# dX = X
## graf derivácie (tento údaj upravte)
# ax1.plot(dX, df(dX), label=r"derivácia")
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## intervaly, na ktorých je funkcia monotónna (tento údaj upravte)
# I = X[None]; ax2.plot(I, f(I), label=r"monotónna")
## legenda (tento údaj upravte)
# ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
Nech funkcia $f$ je spojitá na intervale $I$ a dvakrát diferencovateľná v každom jeho vnútornom bode. Potom
Vyšetrenie intervalov rýdzej konvexnosti a konkávnosti funkcie \begin{align} y & = 3x^2 - x^3. \end{align} Správnosť riešenia je overená graficky.
#####
##### intervaly rýdzej konvexnosti a konkávnosti
#####
#### vstupné údaje
## funkcia
def f(X): return 3 * X ** 2 - X ** 3
X = np.linspace(-1, 3.2, 42*10+1)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharex=True, sharey=True)
fig.set_size_inches(9, 5)
fig.suptitle(r"Intervaly rýdzej konvexnosti a konkávnosti funkcie $y = 3x^2 - x^3$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(1)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
ax1.set_ylim(-2.2, 4.2)
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## prvá derivácia (dôležité len pre skúšku správnosti)
# def df(X): return 6 * X - 3 * X ** 2
# dX = X
## graf prvej derivácie (dôležité len pre skúšku správnosti)
# ax1.plot(dX, df(dX), label=r"prvá derivácia")
## druhá derivácia
def ddf(X): return 6 - 6 * X
ddX = X
## graf druhej derivácie
ax1.plot(ddX, ddf(ddX), label=r"druhá derivácia")
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
# true_false_test(ax1, df, ddX, ddf)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## intervaly, na ktorých je funkcia rýdzo konvexná a konkávna
I = X[X <= 1]; ax2.plot(I, f(I), label=r"rýdzo konvexná")
I = X[X >= 1]; ax2.plot(I, f(I), label=r"rýdzo konkávna")
## legenda
ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
V nasledujúcich príkladoch budeme určovať intervaly rýdzej konvexnosti a konkávnosti funkcií. Správnosť riešenia sa bude overovať graficky, a to takto:
Zistíte, na ktorých intervaloch sú nasledujúce funkcie rýdzo konvexné, resp. rýdzo konkávne: \begin{align} y & = \frac{x^2+1}{x^2+2x+3}, \\ y & = x + \sqrt[3]{x^5}, \\ y & = \ln(1 + x^2). \end{align} Správnosť riešenia overte graficky. Súradnice význačných bodov nevypisujte!
#####
##### intervaly rýdzej konvexnosti a konkávnosti (šablóna riešenia)
#####
#### vstupné údaje
## funkcia
def f(X): return (X ** 2 + 1) / (X ** 2 + 2 * X + 3)
X = np.linspace(-6, 4, 10*100+1)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=2, ncols=1, sharex=True, sharey=True)
fig.set_size_inches(9, 8)
fig.suptitle(r"Intervaly rýdzej konvexnosti a konkávnosti funkcie $y = \dfrac{x^2+1}{x^2+2x+3}$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(3/2)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
ax1.set_ylim(-1.2, 1.8)
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## prvá derivácia (dôležité len pre skúšku správnosti)
# def df(X): return None
# dX = X
## graf prvej derivácie (dôležité len pre skúšku správnosti)
# ax1.plot(dX, df(dX), label=r"prvá derivácia")
## druhá derivácia (tento údaj upravte)
# def ddf(X): return None
# ddX = X
## graf druhej derivácie (tento údaj upravte)
# ax1.plot(ddX, ddf(ddX), label=r"druhá derivácia")
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
# true_false_test(ax1, df, ddX, ddf)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## intervaly, na ktorých je funkcia rýdzo konvexná/konkávna (tento údaj upravte)
# I = X[None]; ax2.plot(I, f(I), label=r"rýdzo konvexná")
# I = X[None]; ax2.plot(I, f(I), label=r"rýdzo konkávna")
## legenda (tento údaj upravte)
# ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
#####
##### intervaly rýdzej konvexnosti a konkávnosti (šablóna riešenia)
#####
#### vstupné údaje
## funkcia
def f(X): return X + np.cbrt(X ** 5)
X = np.linspace(-2, 2, 4*1000+1)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharex=True, sharey=True)
fig.set_size_inches(9, 6)
fig.suptitle(r"Intervaly konvexnosti a konkávnosti funkcie $y = x + \sqrt[3]{x^5}$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(1/2)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
ax1.set_ylim(-5.5, 5.5)
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## prvá derivácia (dôležité len pre skúšku správnosti)
# def df(X): return None
# dX = X
## graf prvej derivácie (dôležité len pre skúšku správnosti)
# ax1.plot(dX, df(dX), label=r"prvá derivácia")
## druhá derivácia (tento údaj upravte)
# def ddf(X): return None
# ddX1, ddX2 = X[None], X[None]
## graf druhej derivácie (tento údaj upravte)
# color = ax1.plot([], [], label=r"druhá derivácia")[0].get_color()
# ax1.plot(ddX1, ddf(ddX1), c=color)
# ax1.plot(ddX2, ddf(ddX2), c=color)
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
# true_false_test(ax1, df, ddX1, ddf)
# true_false_test(ax1, df, ddX2, ddf)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## intervaly, na ktorých je funkcia rýdzo konvexná/konkávna (tento údaj upravte)
# I = X[None]; ax2.plot(I, f(I), label=r"rýdzo konvexná")
# I = X[None]; ax2.plot(I, f(I), label=r"rýdzo konkávna")
## legenda (tento údaj upravte)
# ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
#####
##### intervaly rýdzej konvexnosti a konkávnosti (šablóna riešenia)
#####
#### vstupné údaje
## funkcia
def f(X): return np.log(1 + X ** 2)
X = np.linspace(-3, 3, 6*100+1)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharex=True, sharey=True)
fig.set_size_inches(9, 5)
fig.suptitle(r"Intervaly rýdzej konvexnosti a konkávnosti funkcie $y = \ln(1 + x^2)$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(2)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
ax1.set_ylim(-1.3, 2.3)
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## prvá derivácia (dôležité len pre skúšku správnosti)
# def df(X): return None
# dX = X
## graf prvej derivácie (dôležité len pre skúšku správnosti)
# ax1.plot(dX, df(dX), label=r"prvá derivácia")
## druhá derivácia (tento údaj upravte)
# def ddf(X): return None
# ddX = X
## graf druhej derivácie (tento údaj upravte)
# ax1.plot(ddX, ddf(ddX), label=r"druhá derivácia")
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
# true_false_test(ax1, df, ddX, ddf)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## intervaly, na ktorých je funkcia rýdzo konvexná/konkávna (tento údaj upravte)
# I = X[None]; ax2.plot(I, f(I), label=r"rýdzo konvexná")
# I = X[None]; ax2.plot(I, f(I), label=r"rýdzo konkávna")
## legenda (tento údaj upravte)
# ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
Zistíte, na ktorých intervaloch je funkcia \begin{align} y & = \sin\,x - x. \end{align} rýdzo konvexná, resp. rýdzo konkávná. Správnosť riešenia overte graficky. Súradnice význačných bodov nevypisujte!
#####
##### intervaly rýdzej konvexnosti a konkávnosti (šablóna riešenia)
#####
#### vstupné údaje
## funkcia
def f(X): return np.sin(X) - X
X = np.linspace(-4*np.pi, 4*np.pi, 8*100+1)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=2, ncols=1, sharex=True, sharey=True)
fig.set_size_inches(9, 20)
fig.suptitle(r"Intervaly rýdzej konvexnosti a konkávnosti funkcie $y = \sin\,x - x$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(1)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
## x-ová os
xtick_numerators = range(-4, 4+1)
ax1.set_xticks([n * np.pi for n in xtick_numerators])
ax1.set_xticklabels([smart_ticklabel(n, r"\pi", 1) for n in xtick_numerators])
## y-ová os
ax1.set_ylim(-13, 13)
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## prvá derivácia (dôležité len pre skúšku správnosti)
# def df(X): return None
# dX = X
## graf prvej derivácie (dôležité len pre skúšku správnosti)
# ax1.plot(dX, df(dX), label=r"prvá derivácia")
## druhá derivácia (tento údaj upravte)
# def ddf(X): return None
# ddX = X
## graf druhej derivácie (tento údaj upravte)
# ax1.plot(ddX, ddf(ddX), label=r"druhá derivácia")
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
# true_false_test(ax1, df, ddX, ddf)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## intervaly, na ktorých je funkcia rýdzo konvexná/konkávna (tento údaj upravte)
# I = X[None]; ax2.plot(I, f(I), label=r"rýdzo konvexná")
# I = X[None]; ax2.plot(I, f(I), label=r"rýdzo konkávna")
## legenda (tento údaj upravte)
# ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
Nech funkcia $f$ je trikrát diferencovateľná v bode $x$ a dvakrát diferencovateľná v niektorom jeho okolí. Ak $f''(x) = 0$, $f'''(x) \ne 0$, tak $x$ je inflexný bod funkcie $f$.
Určenie inflexných bodov funkcie \begin{align} y & = \frac{3}{4}x^4 - x^3 - 9x^2 + 7. \end{align} Správnosť riešenia je overená graficky.
#####
##### inflexné body
#####
#### vstupné údaje
## funkcia
def f(X): return 3/4 * X ** 4 - X ** 3 - 9 * X ** 2 + 7
X = np.linspace(-2.85, 4.2, 285+420+1)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharex=True, sharey=True)
fig.set_size_inches(9, 6)
fig.suptitle(r"Inflexné body funkcie $y = \dfrac{3}{4}x^4 - x^3 - 9x^2 + 7$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(1/5)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
ax1.set_ylim(-45, 15)
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## prvá derivácia (dôležité len pre skúšku správnosti)
# def df(X): return 3 * X ** 3 - 3 * X ** 2 - 18 * X
# dX = X
## graf druhej derivácie (dôležité len pre skúšku správnosti)
# ax1.plot(dX, df(dX), label=r"prvá derivácia")
## druhá derivácia
def ddf(X): return 9 * X ** 2 - 6 * X - 18
ddX = X
## graf druhej derivácie
ax1.plot(ddX, ddf(ddX), label=r"druhá derivácia")
## tretia derivácia
def dddf(X): return 18 * X - 6
dddX = X
## graf tretej derivácie
ax1.plot(dddX, dddf(dddX), label=r"tretia derivácia")
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
# true_false_test(ax1, df, ddX, ddf)
# true_false_test(ax1, ddf, dddX, dddf)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## graf funkcie
ax2.plot(X, f(X))
## inflexné body
color = ax2.plot([], [], 'o', label=r"inflexný bod")[0].get_color()
for p in [(1-np.sqrt(19))/3, (1+np.sqrt(19))/3]:
ax2.plot(p, f(p), 'o', c=color)
## legenda
ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
V nasledujúcich príkladoch budeme určovať inflexné body funkcií. Správnosť riešenia sa bude overovať graficky, a to takto:
Určite inflexné body nasledujúcich funkcií: \begin{align} y & = \ln(1 + x^2), \\ y & = x + \sin x. \end{align} Správnosť riešenia overte graficky. Súradnice význačných bodov nevypisujte!
#####
##### inflexné body (šablóna riešenia)
#####
#### vstupné údaje
## funkcia
def f(X): return np.log(1 + X ** 2)
X = np.linspace(-3, 3, 6*100+1)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharex=True, sharey=True)
fig.set_size_inches(9, 4)
fig.suptitle(r"Inflexné body funkcie $y = \ln(1 + x^2)$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(1)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
ax1.set_ylim(-3.3, 3.3)
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## prvá derivácia (dôležité len pre skúšku správnosti)
# def df(X): return None
# dX = X
## graf prvej derivácie (dôležité len pre skúšku správnosti)
# ax1.plot(dX, df(dX), label=r"prvá derivácia")
## druhá derivácia (tento údaj upravte)
# def ddf(X): return None
# ddX = X
## graf druhej derivácie (tento údaj upravte)
# ax1.plot(ddX, ddf(ddX), label=r"druhá derivácia")
## tretia derivácia (tento údaj upravte) (tento údaj upravte)
# def dddf(X): return None
# dddX = X
## graf tretej derivácie (tento údaj upravte)
# ax1.plot(dddX, dddf(dddX), label=r"tretia derivácia")
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
# true_false_test(ax1, df, ddX, ddf)
# true_false_test(ax1, ddf, dddX, dddf)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## graf funkcie
ax2.plot(X, f(X))
## inflexné body (tento údaj upravte)
# color = ax2.plot([], [], 'o', label=r"inflexný bod")[0].get_color()
# for p in None:
# ax2.plot(p, f(p), 'o', c=color)
## legenda (tento údaj upravte)
# ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
#####
##### inflexné body intervaly (šablóna riešenia)
#####
#### vstupné údaje
## funkcia
def f(X): return X + np.sin(X)
X = np.linspace(-4*np.pi, 4*np.pi, 8*10+1)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharex=True, sharey=True)
fig.set_size_inches(9, 5)
fig.suptitle(r"Inflexné body funkcie $y = x + \sin\,x$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(1)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
## x-ová os
xtick_numerators = range(-4, 4+1)
ax1.set_xticks([n * np.pi for n in xtick_numerators])
ax1.set_xticklabels([smart_ticklabel(n, r"\pi", 1) for n in xtick_numerators])
## y-ová os
ax1.set_ylim(-13, 13)
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## prvá derivácia (dôležité len pre skúšku správnosti)
# def df(X): return None
# dX = X
## graf prvej derivácie (dôležité len pre skúšku správnosti)
# ax1.plot(dX, df(dX), label=r"prvá derivácia")
## druhá derivácia (tento údaj upravte)
# def ddf(X): return None
# ddX = X
## graf druhej derivácie (tento údaj upravte)
# ax1.plot(ddX, ddf(ddX), label=r"druhá derivácia")
## tretia derivácia (tento údaj upravte)
# def dddf(X): return None
# dddX = X
## graf tretej derivácie (tento údaj upravte)
# ax1.plot(dddX, dddf(dddX), label=r"tretia derivácia")
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
# true_false_test(ax1, df, ddX, ddf)
# true_false_test(ax1, ddf, dddX, dddf)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## graf funkcie
ax2.plot(X, f(X))
## inflexné body (tento údaj upravte)
# color = ax2.plot([], [], 'o', label=r"inflexný bod")[0].get_color()
# for p in None:
# ax2.plot(p, f(p), 'o', c=color)
## legenda (tento údaj upravte)
# ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
Určite inflexné body funkcie \begin{align} y & = \frac{2x^2-1}{x^2-x+2}. \end{align} Správnosť riešenia overte graficky. Súradnice význačných bodov nevypisujte!
#####
##### inflexné body (šablóna riešenia)
#####
#### vstupné údaje
## funkcia
# def f(X): return (1 - X ** 2) / (X ** 2 + X + 2)
def f(X): return (2 * X ** 2 - 1) / (X ** 2 - X + 2)
X = np.linspace(-8, 10, 15*100+1)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=2, ncols=1, sharex=True, sharey=True)
fig.set_size_inches(9, 10)
fig.suptitle(r"Inflexné body funkcie $y = \dfrac{2x^2-1}{x^2-x+2}$")
### spoločné nastavenie pre oba diagramy
for ax in [ax1, ax2]:
ax.set_aspect(1)
### 1. diagram
init_subplot(ax1)
# ax1.grid()
ax1.set_ylim(-6.7, 4.7)
ax1.set_xticks(range(-8, 10+1, 2))
## graf funkcie
ax1.plot(X, f(X), label=r"funkcia")
## prvá derivácia (dôležité len pre skúšku správnosti)
# def df(X): return None
# dX = X
## graf prvej derivácie (dôležité len pre skúšku správnosti)
# ax1.plot(dX, df(dX), label=r"prvá derivácia")
## druhá derivácia (tento údaj upravte)
# def ddf(X): return None
# ddX = X
## graf druhej derivácie (tento údaj upravte)
# ax1.plot(ddX, ddf(ddX), label=r"druhá derivácia")
## tretia derivácia (tento údaj upravte)
# def dddf(X): return None
# dddX = X
## graf tretej derivácie (tento údaj upravte)
# ax1.plot(dddX, dddf(dddX), label=r"tretia derivácia")
## legenda
ax1.legend()
## skúška správnosti
# true_false_test(ax1, f, dX, df)
# true_false_test(ax1, df, ddX, ddf)
# true_false_test(ax1, ddf, dddX, dddf)
### 2. diagram
init_subplot(ax2)
# ax2.grid()
## graf funkcie
ax2.plot(X, f(X))
## inflexné body (tento údaj upravte)
# color = ax2.plot([], [], 'o', label=r"inflexný bod")[0].get_color()
# for p in None:
# ax2.plot(p, f(p), 'o', c=color)
## legenda (tento údaj upravte)
# ax2.legend()
### archivácia obrázka
# fig.savefig("<meno súboru>.png")
### samotné zobrazenie
fig.show()
#### editor
# editor(figure=fig, axes=ax1, function=f, intervals=[X])
<ipython-input-22-a4756eb1a39c>:13: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`). fig, (ax1, ax2) = plt.subplots(nrows=2, ncols=1, sharex=True, sharey=True)